1. Field of the Invention
The present invention relates to imaging systems and methods.
2. Description of the Related Art
In the context of the present invention, the term imaging is to be taken to mean the production of a digital representation of a page image, typically in preparation for printing or display. The same term is also commonly used to refer to methods of image capture, methods of image display, and methods of printing, but these of only peripherally related to the present invention. Currently, imaging systems are used in a wide variety of fields. An imaging system can include a suite of integrated imaging software that provides high-speed, two-dimensional rendering capabilities for other software programs that require graphics output, such as page description languages (PDL) and interactive graphical editors. Many of these types of imaging systems are designed to be open-ended and device-independent, so that the imaging system can support a wide variety of input data streams and output devices. For example, some imaging systems can simultaneously provide imaging services to more than one application program and/or more than one physical output device.
Computer programs are commonly designed to be executed in a step-by-step fashion, with instructions logically being performed one at a time. Modern operating systems allow multi-threaded processing, in which several threads of control proceed in parallel, largely independently of each other. Each such thread acts, from the programmer's point of view, as a conventional, serial, computer. The actual processor or processors are multiplexed among the threads to provide this illusion. A multithreaded program, if running on a computer having multiple processors, can run faster than on a single-processor computer, because the operations can take place in parallel.
Currently, imaging systems can support full-color printing for high-speed printing engines. These printing engines are capable of full-color printing, for example, at 40 or 60 pages per minute. The controller for the print engines can be a computer workstation containing multiple processors, which may provide a performance advantage if there are multiple threads, as discussed above. But the instructions for producing a given page image are typically performed serially, or in a pipelined fashion where each thread is responsible for a certain stage of processing.
Because the processing capability of the print engines continues to increase to higher speeds, there is a need for an imaging system that will more precisely control the multiple processors and multiple worker threads to further increase print speed, even when regions within a page image overlap.
For pages of text and for synthetic images in which imaging regions that include graphic elements do not overlap, the imaging process is less complex. On the other hand, when there is overlapping between imaging regions, imaging system cannot efficiently parallel process the threads of information that need to be processed to create the image. Consequently, because it is quite common in current imaging systems for imaging regions of an image to overlap, parallel processing can be degraded or prevented when using conventional imaging systems and methods.
Based on the problems discussed above, there is a need for imaging systems and methods that allow better utilization of hardware systems with multiple processors to speed the production of page images. The imaging system needs to be capable of using multiple worker threads simultaneously within a certain print job even when regions of the image overlap. For example, the imaging system needs to perform parallel processing that allows multiple execution threads to process independent portions of a same page of a single print job simultaneously when the overlapping regions exist.